1. Field of the Invention
The present invention relates to a data transfer method that allows bidirectional data transfer.
2. Description of the Prior Art
The IEEE 1394-1995 standard (hereinafter also abbreviated to xe2x80x9cIEEE 1394xe2x80x9d), which is a standard for a high-speed serial bus, was formulated to permit high-speed transfer of a large amount of data such as images among information processing devices such as computers and digital cameras. According to IEEE 1394, bidirectional data transfer is achieved across four electric signal wires (two twisted pairs of wires).
According to IEEE 1394, during data transfer, only the device that has obtained the right to transmit transmits data together with a strobe that is used by a receiving device to reproduce a clock. To arbitrate a conflict over the right to transmit data between two devices, the two devices each drive an arbitration signal on the twisted-pair wires simultaneously, and check what arbitration signal the conflicting device has driven by comparing the potential state of the arbitration signal they have themselves driven with that of the signal that has actually appeared on the twisted-pair wires.
On the other hand, according to p1394b, which has been under preparation as an expanded version of the IEEE 1394 standard, data transfer conforming to IEEE 1394 is conducted across two optical fibers. On optical fibers, data and a strobe cannot be transmitted as described above, and therefore, depending on the bit sequence transmitted, the receiving device may fail to reproduce a clock. To avoid this, data is transmitted after undergoing encoding whereby clock information is superimposed on the data itself. According to p1394b, an encoding method called 8B10B is used. Moreover, on optical fibers, it is impossible to perform arbitration by simultaneous driving of signals as performed in IEEE 1394. Instead, codes that do not appear after the encoding of data by the aforementioned encoding method are allocated for control codes, and arbitration is achieved through bidirectional exchange of control codes.
Moreover, according to p1394b, signals (hereinafter called xe2x80x9ctone signalsxe2x80x9d) that are different from those used in data transfer are exchanged to detect connection with a remote device, to set parameters such as the data transfer speed, and thus to establish connection between a local and a remote device (the connection establishment step). Upon establishment of connection between the local and remote devices, data transfer is started (the transfer execution step). Specifically, first, predetermined codes are exchanged with the remote device to establish character synchronization (the synchronization establishment step), and thereafter ordinary data transfer is conducted using control codes and data codes (the ordinary transfer step)
Moreover, according to p1394b, every device produces a binary signal (hereinafter called the xe2x80x9cSD signalxe2x80x9d) that is kept active while the device is receiving a signal. When connection is lost (specifically, when the remote device is physically disconnected, or when the remote device becomes unable to transmit, for example, because it has been switched off), no signal is received from the remote device, and thus the SD signal becomes non-active. Hence, loss of connection can readily be detected on the basis of the SD signal. When a device detects loss of connection, it returns to the step of establishing connection using tone signals.
According to p1394b, as will be described later, each node is kept transmitting some signal all the time. The SD signal is produced, for example, by charging and discharging a capacitor with a received signal. Whereas the SD signal sways between its active and non-active states during reception of tone signals, it remains active during reception of data signals. Hence, a receiving device can readily detect a transmitting device having started data transmission.
Moreover, according to p1394b, when the local device receives a code that the remote device cannot transmit (hereinafter, such a code will be called an xe2x80x9cillegal codexe2x80x9d) during ordinary data transfer, the local device recognizes that a transfer error has occurred and returns to the step of establishing character synchronization.
As described above, p1394b deals with optical bidirectional data transfer using two optical fibers. For cost reduction and space saving, there is also a move under way to realize data transfer conforming to IEEE 1394 across a single optical fiber.
In data transfer conforming to IEEE 1394, identical control codes may be transmitted repeatedly. Hence, as long as character synchronization is established, even if, for example, one character in such a row is received incorrectly, data transfer can often be continued without any problem.
However, when bidirectional data transfer is conducted across a single optical fiber, the rate of errors in received data is higher than when two optical fibers are used. For this reason, detecting transfer errors by detecting illegal codes as performed in p1394b results in unnecessarily many interruptions in data transfer, and thus leads to low data transfer efficiency.
Moreover, in bidirectional data transfer using a single optical fiber, a light emitting unit and a light sensing unit cannot be separated optically. Thus, the light sensing unit of the local device receives not only the light emitted from the light emitting unit of the remote device (hereinafter, this light is called the xe2x80x9cremote-device lightxe2x80x9d) but also the light emitted from its own light emitting unit toward the remote device but reflected back by the light propagation path or the like (hereinafter, this light is called the xe2x80x9cstray lightxe2x80x9d). That is, the light that the light sensing unit of the local device actually receives contains the remote-device light and the stray light.
A light sensing unit has a light sensor, and converts the light received by the light sensor into a binary electric signal according to the intensity of the received light. Since different light propagation paths have different lengths, and the performance of the light sensor varies to a certain extent from one individual light sensor to another, and the level of the remote-device light varies from one individual device to another, the threshold level of the aforementioned binary electric signal is not fixed, but is varied according to the level of the received light in such a way that, as the light sensor continues receiving intense light, the threshold level becomes higher and, as the light sensor continues receiving weak light, the threshold level becomes lower.
As will be inferred from the description above, when the local device stops transmission (that is, when it stops emitting light), the threshold level in the light-sensing unit at the remote device""s node drops. To avoid this, each node is kept transmitting some signal all the time. Moreover, for such signals are allocated codes that, even if transmitted repeatedly, do not cause either a rise or a drop in the threshold level in the light sensing unit at the remote device""s node.
The stray light has a lower level than the remote-device light. Thus, during reception of the remote-device light, the threshold level remains higher than the level of the stray light, and therefore the stray light does not affect the reception of the remote-device light. However, when the remote-device light is absent (in other words, when connection is lost), the threshold level becomes lower until eventually the stray light is received. As a result, it sometimes occurs that, although connection is lost, the reception of the stray light makes the SD signal active. Thus, it is not always possible to detect loss of connection on the basis of the SD signal alone as performed in p1394b.
In the event of loss of connection during ordinary data transfer, it is necessary to return to the step of establishing connection using tone signals. On the other hand, in the event of a transfer error, in which case connection is retained, it is necessary simply to return to the step of establishing synchronization.
However, in bidirectional data transfer using a single optical fiber, bit displacement or the like may cause the stray light to be received as an illegal code, and thus there is the possibility that, although connection is lost, a transfer error is erroneously detected. When a device erroneously detects a transfer error in this way, it returns to the step of establishing synchronization, and then, as long as it continues receiving the stray light, it returns to the step of establishing synchronization repeatedly. This makes it impossible to resume ordinary data transfer.
To avoid this, in bidirectional data transfer using a single optical fiber, when a transfer error is detected, it is necessary, just as when loss of connection is detected, to return to the step of establishing connection using tone signals. However, completing this step takes a far longer time than completing the step of establishing synchronization, and thus it takes a very long time to recover from a transfer error to ordinary data transfer. In bus-based communication, trouble in one part of the bus affects other parts thereof, and therefore it is desirable that recovery from a transfer error to ordinary data transfer take as short a time as possible.
An object of the present invention is to provide a data transfer method that enhances data transfer efficiency in data transfer that suffers from a relatively high error rate but that instead tolerates errors to a certain extent.
Another object of the present invention is to provide a data transfer method that detects loss of connection more reliably in bidirectional data transfer using a single optical fiber.
Still another object of the present invention is to provide a data transfer method that ensures unfailing recovery to ordinary data transfer and that permits recovery from a transfer error to ordinary data transfer in a shorter time than ever in bidirectional data transfer using a single optical fiber.
To achieve the above objects, according to one aspect of the present invention, in a data transfer method including a connection establishment step of detecting connection with a remote device and setting parameters for data transfer, and a transfer execution step of starting data transfer after completion of the connection establishment step and continuing data transfer until a transfer error is recognized to have occurred, the frequency of errors in received data is monitored in the transfer execution step and, when the frequency reaches a predetermined value, a transfer error is recognized to have occurred. This method makes it possible to continue ordinary data transfer unless illegal codes are received frequently.
According to another aspect of the present invention, in a data transfer method that achieves bidirectional data transfer using a single optical fiber and that includes a connection establishment step of detecting connection with a remote device and setting parameters for data transfer, and a transfer execution step of starting data transfer after completion of the connection establishment step and continuing data transfer until a transfer error is recognized to have occurred, codes are allocated in such a way that the codes a local device can transmit include the codes the remote device cannot transmit, and, in the connection establishment step, a transfer error is recognized to have occurred when a code the remote device cannot transmit is received. This method makes it possible to distinguish whether the light currently being received is the remote-device light or the stray light on the basis of the codes received.
When this method is adopted, it is essential to determine beforehand between the local and remote devices what codes they each use. There are several ways to make this determination, but no specific way is mentioned in the present invention, which simply requires that the determination be made in the step of establishing connection with the remote device using tone signals.
According to still another aspect of the present invention, in a data transfer method including a connection establishment step of detecting connection with a remote device and setting parameters for data transfer, and a transfer execution step of starting data transfer after completion of the connection establishment step and continuing data transfer until a transfer error is recognized to have occurred, wherein the transfer execution step includes a synchronization establishment step of establishing character synchronization, and an ordinary transfer step of conducting ordinary data transfer after completion of the synchronization establishment step, when a transfer error is recognized to have occurred in the ordinary transfer step, execution proceeds to either the connection establishment step or the synchronization establishment step according to the time that has elapsed after the ordinary transfer step was started.
According to this method, when a transfer error is detected, execution may return to the step of establishing character synchronization. When a transfer error is erroneously detected although connection is lost, even if execution returns to the step of establishing character synchronization, it never occurs that execution is locked into this step never to return to the step of establishing connection with the remote device using tone signals.
According to a data transfer method embodying the present invention, ordinary data transfer is continued unless errors occur frequently in received data. This helps prevent unnecessarily frequent interruptions of data transfer and thereby enhance data transfer efficiency in data transfer, such as data transfer conforming to IEEE 1394 and using a single optical fiber, that suffers from a relatively high error rate but that instead tolerates errors to a certain extent.
Moreover, it is possible to distinguish whether the light being received is the remote-device light or the stray light on the basis of codes. This makes it possible to detect loss of connection more reliably than ever in bidirectional data transfer using a single optical fiber.
Moreover, when a transfer error is detected, it is possible to return to either the step of establishing connection using tone signals or the step of establishing character synchronization according to the time that has elapsed up to the moment. This ensures unfailing recovery to ordinary data transfer, and in addition permits recovery from a transfer error to ordinary data transfer in a shorter time than ever.